package main

import "fmt"

//数组的学习
func main() {

	//没有赋值的元素 默认是0值
	var arr [14]int32

	arr[0] = 1
	arr[1] = 2
	arr[2] = 3
	arr[3] = 4

	for i := 0; i < len(arr); i++ {
		fmt.Println(arr[i])
	}

	fmt.Printf("arr type %T arr value %v arr addr %p arr[0] type %T  arr[0] value %v \n", arr, arr, &arr, arr[0], arr[0])

	//数组的第一个元素的地址 就是首地址
	//地址是连续排列的
	fmt.Printf("arry 地址= %p\n", &arr)
	fmt.Printf("arry[0] 地址= %p\n", &arr[0])

	//元素地址 是十六进制的数   int64 每次+8 int32 每次+4

	fmt.Printf("arry[1] 地址= %p\n", &arr[1])
	fmt.Printf("arry[2] 地址= %p\n", &arr[2])
	fmt.Printf("arry[3] 地址= %p\n", &arr[3])
	fmt.Printf("arry[4] 地址= %p\n", &arr[4])
	fmt.Printf("arry[5] 地址= %p\n", &arr[5])

	for index, value := range arr {
		fmt.Println("index", index)
		fmt.Println("value", value)
	}

}
